<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" dir="ltr" class="client-nojs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Statements - cppreference.com</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.21.2">


<link rel="shortcut icon" href="../../../favicon.ico">



<link rel="stylesheet" href="../../../common/ext.css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="../../../common/site_modules.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-css:7:472787eddcf4605d11de8c7ef047234f */</style>

<script src="../../../common/startup_scripts.js"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"cpp/language/statements","wgTitle":"cpp/language/statements","wgCurRevisionId":71581,"wgArticleId":9895,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"cpp/language/statements","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-ColiruCompiler":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-js:7:ca03345b1e2c4d90a25d968753a73b92 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<style type="text/css">/*<![CDATA[*/
.source-cpp {line-height: normal;}
.source-cpp li, .source-cpp pre {
	line-height: normal; border: 0px none white;
}
/**
 * GeSHi Dynamically Generated Stylesheet
 * --------------------------------------
 * Dynamically generated stylesheet for cpp
 * CSS class: source-cpp, CSS id: 
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
 * (http://qbnz.com/highlighter/ and http://geshi.org/)
 * --------------------------------------
 */
.cpp.source-cpp .de1, .cpp.source-cpp .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.cpp.source-cpp  {font-family:monospace;}
.cpp.source-cpp .imp {font-weight: bold; color: red;}
.cpp.source-cpp li, .cpp.source-cpp .li1 {font-weight: normal; vertical-align:top;}
.cpp.source-cpp .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}
.cpp.source-cpp .li2 {font-weight: bold; vertical-align:top;}
.cpp.source-cpp .kw1 {color: #0000dd;}
.cpp.source-cpp .kw2 {color: #0000ff;}
.cpp.source-cpp .kw3 {color: #0000dd;}
.cpp.source-cpp .kw4 {color: #0000ff;}
.cpp.source-cpp .co1 {color: #909090;}
.cpp.source-cpp .co2 {color: #339900;}
.cpp.source-cpp .coMULTI {color: #ff0000; font-style: italic;}
.cpp.source-cpp .es0 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es1 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es2 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es3 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es4 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es5 {color: #008000; font-weight: bold;}
.cpp.source-cpp .br0 {color: #008000;}
.cpp.source-cpp .sy0 {color: #008000;}
.cpp.source-cpp .sy1 {color: #000080;}
.cpp.source-cpp .sy2 {color: #000040;}
.cpp.source-cpp .sy3 {color: #000040;}
.cpp.source-cpp .sy4 {color: #008080;}
.cpp.source-cpp .st0 {color: #008000;}
.cpp.source-cpp .nu0 {color: #000080;}
.cpp.source-cpp .nu6 {color: #000080;}
.cpp.source-cpp .nu8 {color: #000080;}
.cpp.source-cpp .nu12 {color: #000080;}
.cpp.source-cpp .nu16 {color:#000080;}
.cpp.source-cpp .nu17 {color:#000080;}
.cpp.source-cpp .nu18 {color:#000080;}
.cpp.source-cpp .nu19 {color:#000080;}
.cpp.source-cpp .ln-xtra, .cpp.source-cpp li.ln-xtra, .cpp.source-cpp div.ln-xtra {background-color: #ffc;}
.cpp.source-cpp span.xtra { display:block; }

/*]]>*/
</style>
<!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]-->
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_language_statements skin-cppreference2 action-view cpp-navbar">
        <!-- header -->
        
        <!-- /header -->
        <!-- content -->
        <div id="cpp-content-base">
            <div id="content">
                <a id="top"></a>
                <div id="mw-js-message" style="display:none;"></div>
                                <!-- firstHeading -->
                <h1 id="firstHeading" class="firstHeading">Statements</h1>
                <!-- /firstHeading -->
                <!-- bodyContent -->
                <div id="bodyContent">
                                        <!-- tagline -->
                    <div id="siteSub">From cppreference.com</div>
                    <!-- /tagline -->
                                        <!-- subtitle -->
                    <div id="contentSub"><span class="subpages">&lt; <a href="../../cpp.html" title="cpp">cpp</a>‎ | <a href="../language.1.html" title="cpp/language">language</a></span></div>
                    <!-- /subtitle -->
                                                            <!-- bodycontent -->
                    <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr">
<div class="t-navbar" style="">
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head">
<a href="../../cpp.html" title="cpp"> C++</a><div class="t-navbar-menu"><div>
<div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em;">
<tr class="t-nv"><td colspan="5"> <a href="../language.1.html" title="cpp/language"> Language</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../header.html" title="cpp/header"> Standard library headers</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../concept.html" title="cpp/concept"> Concepts</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../utility.html" title="cpp/utility"> Utilities library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../string.html" title="cpp/string"> Strings library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../container.html" title="cpp/container"> Containers library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../algorithm.html" title="cpp/algorithm"> Algorithms library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../iterator.html" title="cpp/iterator"> Iterators library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../numeric.html" title="cpp/numeric"> Numerics library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../io.html" title="cpp/io"> Input/output library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../locale.html" title="cpp/locale"> Localizations library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../regex.html" title="cpp/regex"> Regular expressions library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../atomic.html" title="cpp/atomic"> Atomic operations library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../thread.html" title="cpp/thread"> Thread support library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
</table></div>
<div></div>
</div></div>
</div>
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head"><a href="../language.1.html" title="cpp/language"> C++ language</a></div>
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head">
<strong class="selflink"> Statements</strong><div class="t-navbar-menu"><div>
<div style="display:inline-block">
<div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv-h2"><td colspan="5"> Labels </td></tr>
<tr class="t-nv"><td colspan="5"> <strong class="selflink"> <span class="t-spar">label</span> : <span class="t-spar">statement</span></strong>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Expression statements </td></tr>
<tr class="t-nv"><td colspan="5"> <strong class="selflink"> <span class="t-spar">expression</span> ; </strong>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Compound statements </td></tr>
<tr class="t-nv"><td colspan="5"> <strong class="selflink"> { <span class="t-spar">statement</span>... } </strong>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Selection statements </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="if.html" title="cpp/language/if"> if</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="switch.html" title="cpp/language/switch"> switch</a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Iteration statements </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="while.html" title="cpp/language/while"> while</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="do.html" title="cpp/language/do"> do-while</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="for.html" title="cpp/language/for"> for</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="range-for.html" title="cpp/language/range-for"> range for</a><span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Jump statements </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="break.html" title="cpp/language/break"> break</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="continue.html" title="cpp/language/continue"> continue</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="return.html" title="cpp/language/return"> return</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="goto.html" title="cpp/language/goto"> goto</a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Declaration statements </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="declarations.html" title="cpp/language/declarations"> <span class="t-spar">declaration</span> ; </a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Try blocks </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="try_catch.html" title="cpp/language/try catch"> try <span class="t-spar">compound-statement</span> <span class="t-spar">handler-sequence</span></a>
</td></tr>
</table></div>
</div>
<div></div>
</div></div>
</div>
<div class="t-navbar-sep"> </div>
</div>
<p>Statements are fragments of the C++ program that are executed in sequence. The body of any function is a sequence of statements. For example:
</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;"><div class="cpp source-cpp"><pre class="de1"><span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
    <span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// declaration statement</span>
    n <span class="sy1">=</span> n<span class="sy2">+</span><span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// expression statement</span>
    <a href="../io/basic_ostream.html"><span class="kw1439">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">"n = "</span> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">'<span class="es1">\n</span>'</span><span class="sy4">;</span> <span class="co1">// expression statement</span>
    <span class="kw1">return</span> <span class="nu0">0</span><span class="sy4">;</span> <span class="co1">// return statement</span>
<span class="br0">}</span></pre></div></div>
<p><br>
There are seven types of statements:
</p>
<div class="t-li1">
<span class="t-li">1)</span> expression statement</div>
<div class="t-li1">
<span class="t-li">2)</span> compound statement</div>
<div class="t-li1">
<span class="t-li">3)</span> selection statement</div>
<div class="t-li1">
<span class="t-li">4)</span> iteration statement</div>
<div class="t-li1">
<span class="t-li">5)</span> jump statement</div>
<div class="t-li1">
<span class="t-li">6)</span> declaration statement</div>
<div class="t-li1">
<span class="t-li">7)</span> try block</div>
<table id="toc" class="toc"><tr><td>
<div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="statements.html%23Labels"><span class="tocnumber">1</span> <span class="toctext">Labels</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="statements.html%23Expression_statements"><span class="tocnumber">2</span> <span class="toctext">Expression statements</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="statements.html%23Compound_statement"><span class="tocnumber">3</span> <span class="toctext">Compound statement</span></a></li>
<li class="toclevel-1 tocsection-4"><a href="statements.html%23Selection_statements"><span class="tocnumber">4</span> <span class="toctext">Selection statements</span></a></li>
<li class="toclevel-1 tocsection-5"><a href="statements.html%23Iteration_statements"><span class="tocnumber">5</span> <span class="toctext">Iteration statements</span></a></li>
<li class="toclevel-1 tocsection-6"><a href="statements.html%23Jump_statements"><span class="tocnumber">6</span> <span class="toctext">Jump statements</span></a></li>
<li class="toclevel-1 tocsection-7"><a href="statements.html%23Declaration_statement"><span class="tocnumber">7</span> <span class="toctext">Declaration statement</span></a></li>
<li class="toclevel-1 tocsection-8"><a href="statements.html%23Try_block"><span class="tocnumber">8</span> <span class="toctext">Try block</span></a></li>
</ul>
</td></tr></table>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Labels">edit</a>]</span> <span class="mw-headline" id="Labels">Labels</span>
</h3>
<p>Any statement can be <i>labeled</i>, by providing a label followed by a colon before the statement itself:
</p>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <span class="t-spar">identifier</span> <code><b>:</b></code> <span class="t-spar">statement</span>
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>case</b></code> <span class="t-spar">constexpr</span> <code><b>:</b></code> <span class="t-spar">statement</span>
</td>
<td> (2)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>default</b></code> <code><b>:</b></code> <span class="t-spar">statement</span>
</td>
<td> (3)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<div class="t-li1">
<span class="t-li">1)</span> Target for <a href="goto.html" title="cpp/language/goto">goto</a>.</div>
<div class="t-li1">
<span class="t-li">2)</span> Case label in a <a href="switch.html" title="cpp/language/switch">switch</a> statement.</div>
<div class="t-li1">
<span class="t-li">3)</span> Default label in a <a href="switch.html" title="cpp/language/switch">switch</a> statement.</div>
<p>An <a href="attributes.html" title="cpp/language/attributes">attribute</a> sequence <span class="t-spar">attr</span> may appear just before the label (in which case it applies to the label), or just before any statement itself, in which case it applies to the entire statement. A statement may carry multiple labels.
</p>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Expression statements">edit</a>]</span> <span class="mw-headline" id="Expression_statements">Expression statements</span>
</h3>
<p>An expression followed by a semicolon is a statement.
</p>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <span class="t-spar">expression</span><span class="t-mark">(optional)</span> <code><b>;</b></code>
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<table class="t-par-begin">


<tr class="t-par">
<td>  <span class="t-spar">attr</span><span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td>
<td> -
</td>
<td>  optional sequence of any number of <a href="attributes.html" title="cpp/language/attributes">attributes</a>
</td>
</tr>
<tr class="t-par">
<td>  <span class="t-spar">expression</span>
</td>
<td> -
</td>
<td>  an <a href="expressions.html" title="cpp/language/expressions">expression</a>
</td>
</tr>
</table>
<p>Most statements in a typical C++ program are expression statements, such as assignments or function calls.
</p>
<p>An expression statement without an expression is called a <i>null statement</i>. It is often used to provide an empty body to a <a href="for.html" title="cpp/language/for">for</a> or <a href="while.html" title="cpp/language/while">while</a> loop. It can also be used to carry a label in the end of a compound statement.
</p>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Compound statement">edit</a>]</span> <span class="mw-headline" id="Compound_statement">Compound statement</span>
</h3>
<p>A compound statement or <i>block</i> is a brace-enclosed sequence of statements. 
</p>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <code><b>{</b></code> <span class="t-spar">statement...</span><span class="t-mark">(optional)</span> <code></code>}
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<p>When one statement is expected, but multiple statements need to be executed in sequence (for example, in an <a href="if.html" title="cpp/language/if">if</a> statement or a loop), a compound statement may be used:
</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;"><div class="cpp source-cpp"><pre class="de1"><span class="kw1">if</span> <span class="br0">(</span>expr<span class="br0">)</span> <span class="co1">// start of if-statement</span>
<span class="br0">{</span> <span class="co1">// start of block</span>
  <span class="kw4">int</span> n <span class="sy1">=</span><span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// declaration statement</span>
  cout <span class="sy1">&lt;&lt;</span> n<span class="sy4">;</span> <span class="co1">// expression statement</span>
<span class="br0">}</span> <span class="co1">// end of block, end of if-statement</span></pre></div></div>
<p>Each compound statement introduces its own block <a href="scope.html" title="cpp/language/scope">scope</a>: variables declared inside a block are destroyed at the closing brace in reverse order.
</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;"><div class="cpp source-cpp"><pre class="de1"><span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
    <span class="br0">{</span> <span class="co1">// start of block</span>
       <a href="../io/basic_ofstream.html"><span class="kw1418">std::<span class="me2">ofstream</span></span></a> f<span class="br0">(</span><span class="st0">"test.txt"</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// declaration statment</span>
       f <span class="sy1">&lt;&lt;</span> <span class="st0">"hi<span class="es1">\n</span>"</span><span class="sy4">;</span> <span class="co1">// expression statement</span>
    <span class="br0">}</span> <span class="co1">// end of block, f is flushed and closed by ofstream's destructor</span>
    <a href="../io/basic_ifstream.html"><span class="kw1417">std::<span class="me2">ifstream</span></span></a> f<span class="br0">(</span><span class="st0">"test.txt"</span><span class="br0">)</span><span class="sy4">;</span> 
    <a href="../string/basic_string.html"><span class="kw1045">std::<span class="me2">string</span></span></a> str<span class="sy4">;</span>
    f <span class="sy1">&gt;&gt;</span> str<span class="sy4">;</span> 
<span class="br0">}</span></pre></div></div>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Selection statements">edit</a>]</span> <span class="mw-headline" id="Selection_statements">Selection statements</span>
</h3>
<p>The selection statements choose between one of several flows of control
</p>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>if</b></code> <code><b>(</b></code> <span class="t-spar">condition</span> <code><b>)</b></code> <span class="t-spar">statement</span>
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>if</b></code> <code><b>(</b></code> <span class="t-spar">condition</span> <code><b>)</b></code> <span class="t-spar">statement</span> <code><b>else</b></code> <span class="t-spar">statement</span>
</td>
<td> (2)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>switch</b></code> <code><b>(</b></code> <span class="t-spar">condition</span> <code><b>)</b></code> <span class="t-spar">statement</span>
</td>
<td> (3)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<div class="t-li1">
<span class="t-li">1)</span> <a href="if.html" title="cpp/language/if">if</a> statement</div>
<div class="t-li1">
<span class="t-li">2)</span> <a href="if.html" title="cpp/language/if">if</a> statement with an else clause</div>
<div class="t-li1">
<span class="t-li">3)</span> <a href="switch.html" title="cpp/language/switch">switch</a> statement</div>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Iteration statements">edit</a>]</span> <span class="mw-headline" id="Iteration_statements">Iteration statements</span>
</h3>
<p>The iteration statements repeatedly execute some code.
</p>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>while</b></code> <code><b>(</b></code> <span class="t-spar">condition</span> <code><b>)</b></code> <span class="t-spar">statement</span>
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>do</b></code> <span class="t-spar">statement</span> <code><b>while</b></code> <code><b>(</b></code> <span class="t-spar">expression</span> <code><b>)</b></code> <code><b>;</b></code>
</td>
<td> (2)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>for</b></code> <code><b>(</b></code> <span class="t-spar">for-init-statement</span> <span class="t-spar">condition</span><span class="t-mark">(optional)</span> <code><b>;</b></code> <span class="t-spar">expression</span><span class="t-mark">(optional)</span> <code><b>)</b></code> <span class="t-spar">statement</span>
</td>
<td> (3)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>for</b></code> <code><b>(</b></code> <span class="t-spar">for-range-decl</span> <code><b>:</b></code> <span class="t-spar">for-range-init</span> <code><b>)</b></code> <span class="t-spar">statement</span>
</td>
<td> (4)
</td>
<td> <span class="t-mark-rev t-since-cxx11">(since C++11)</span>
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<div class="t-li1">
<span class="t-li">1)</span> <a href="while.html" title="cpp/language/while">while</a> loop</div>
<div class="t-li1">
<span class="t-li">2)</span> <a href="do.html" title="cpp/language/do">do-while</a> loop</div>
<div class="t-li1">
<span class="t-li">3)</span> <a href="for.html" title="cpp/language/for">for</a> loop</div>
<div class="t-li1">
<span class="t-li">4)</span> <a href="range-for.html" title="cpp/language/range-for">range for</a> loop</div>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Jump statements">edit</a>]</span> <span class="mw-headline" id="Jump_statements">Jump statements</span>
</h3>
<p>The jump statements unconditionally transfer flow control
</p>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>break</b></code> <code><b>;</b></code>
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>continue</b></code> <code><b>;</b></code>
</td>
<td> (2)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>return</b></code> <span class="t-spar">expression</span><span class="t-mark">(optional)</span> <code><b>;</b></code>
</td>
<td> (3)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>return</b></code> <span class="t-spar">braced-init-list</span> <code><b>;</b></code>
</td>
<td> (4)
</td>
<td> <span class="t-mark-rev t-since-cxx11">(since C++11)</span>
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>goto</b></code> <span class="t-spar">identifier</span> <code><b>;</b></code>
</td>
<td> (5)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<div class="t-li1">
<span class="t-li">1)</span> <a href="break.html" title="cpp/language/break">break</a> statement</div>
<div class="t-li1">
<span class="t-li">2)</span> <a href="continue.html" title="cpp/language/continue">continue</a> statement</div>
<div class="t-li1">
<span class="t-li">3)</span> <a href="return.html" title="cpp/language/return">return</a> statement with an optional expression</div>
<div class="t-li1">
<span class="t-li">4)</span> <a href="return.html" title="cpp/language/return">return</a> statement using <a href="list_initialization.html" title="cpp/language/list initialization">list initialization</a>
</div>
<div class="t-li1">
<span class="t-li">5)</span> <a href="goto.html" title="cpp/language/goto">goto</a> statement</div>
<p>Note: for all jump statements, transfer out of a loop, out of a block, or back past an initialized variable with automatic storage duration involves the destruction of objects with automatic storage duration that are in scope at the point transferred from but not at the point transferred to. If multiple objects were initialized, the order of destruction is the opposite of the order of initialization.
</p>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Declaration statement">edit</a>]</span> <span class="mw-headline" id="Declaration_statement">Declaration statement</span>
</h3>
<p>Declaration statements introduce one or more identifiers into a block.
</p>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">block-declaration</span> <code><b>;</b></code>
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<div class="t-li1">
<span class="t-li">1)</span> See <a href="declarations.html" title="cpp/language/declarations">Declarations</a> and <a href="initialization.html" title="cpp/language/initialization">Initialization</a> for details.</div>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Try block">edit</a>]</span> <span class="mw-headline" id="Try_block">Try block</span>
</h3>
<p>The try block statement provides the ability to catch exceptions thrown when executing other statements.
</p>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">attr</span><span class="t-mark">(optional)</span> <code><b>try</b></code> <span class="t-spar">compound-statement</span> <span class="t-spar">handler-sequence</span>
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<div class="t-li1">
<span class="t-li">1)</span> See <a href="try_catch.html" title="cpp/language/try catch">try/catch</a> for details.</div>

<!-- 
NewPP limit report
Preprocessor visited node count: 2449/1000000
Preprocessor generated node count: 5469/1000000
Post‐expand include size: 47272/2097152 bytes
Template argument size: 12350/2097152 bytes
Highest expansion depth: 13/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key mwiki1-mwiki_en_:pcache:idhash:9895-0!*!0!!en!*!* and timestamp 20140614040611 -->
</div>                    <!-- /bodycontent -->
                                        <!-- printfooter -->
                    <div class="printfooter">
                    Retrieved from "<a href="http%3A//en.cppreference.com/mwiki/index.php">http://en.cppreference.com/mwiki/index.php?title=cpp/language/statements&amp;oldid=71581</a>"                    </div>
                    <!-- /printfooter -->
                                                            <!-- catlinks -->
                    <div id="catlinks" class="catlinks catlinks-allhidden"></div>                    <!-- /catlinks -->
                                                            <div class="visualClear"></div>
                    <!-- debughtml -->
                                        <!-- /debughtml -->
                </div>
                <!-- /bodyContent -->
            </div>
        </div>
        <!-- /content -->
        <!-- footer -->
        
        <!-- /footer -->
        <script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../../common/skin_scripts.js"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.ColiruCompiler"], null, true);
}</script>
<script src="../../../common/site_scripts.js"></script>

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 0.082 secs. -->
	</body>
<!-- Cached 20140614042422 -->
</html>
